package com.lfz.demo.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lfz.demo.entity.Role;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * @author lfz
 * @date 2025/3/4 10:48
 */
@Mapper
public interface RoleMapper extends BaseMapper<Role> {

    @Select("select mid from role_menu where rid = #{roleId}")
    List<Integer> queryMidByRid(Integer roleId);

    // 1、分配菜单栏之前删除所有的rid数据
    @Delete("delete from role_menu where rid = #{rid}")
    void deleteRoleByRid(Integer rid);

    // 2、保存分配 角色 与 菜单 的关系
    @Insert("insert into role_menu(rid,mid) values (#{rid},#{mid})")
    void saveRoleMenu(@Param("rid") Integer rid, @Param("mid") Integer mid);

    // 根据用户id查询所有角色id 查询user_role表
    @Select("select rid from user_role where uid = #{id}")
    List<Integer> queryUserRoleById(Integer id);

    // 1、分配角色之前根据 用户id 删除之前的用户与角色关系数据
    @Delete("delete from user_role where uid = #{uid}")
    void deleteUserRoleByUid(Integer uid);

    // 2、保存分配 角色 与 用户 的关系
    @Insert("insert into user_role(rid,uid) values (#{rid},#{uid})")
    void saveUserRole(Integer uid, Integer rid);
}
